Product documentation provides important instructions and relevant technical information for properly assembling, operating, and maintaining complex machinery. The quality of product documents is crucial to the success of a product, i.e., the technical information must be up-to-date, accurate, and consistent with a customer's product. Compared to non-technical documentation, the contents and structures of product documents are much more rigid and often comply to various industrial standards. Technical documents also tend to be highly cross-referenced, and often refer users to many different forms of technical data including textual instructions, schematic diagrams, computer-aided design (CAD) drawings, photo images of machine parts, video of inspection procedures, etc. In order to ensure the quality of product documentation, guidelines and standards for technical publication are often used in product development organizations.
However, documentation guidelines are often written informally and may not be easy to enforce fully. Consequently, the result varies, depending on the degree of self-discipline of the document authors. To support flexible manipulations, multimedia product documents are represented in Standard Generalized Markup Language (SGML). SGML-based product documents can be processed by a SGML parser and other SGML-based tools to extract and examine the contents and attributes of relevant document objects and their relationships. The SGML parser can check the documents against a Document Type Definition (DTD) and report syntax errors. However, the information provided by the SGML parser is based entirely on syntactical structure, which often is too encrypted for the document author to comprehend. On the other hand, documentation guidelines are often based on the semantics of documents, which can only be checked by examining contents and attributes of the relevant document objects. Some documentation guidelines also involve document objects that are not “directly” reedited to one another in the document structure, and thus cannot be easily specified in the DTD.